/**
 * @file ProblemA.h
 * @brief ProblemA
 * 
 * 这个头文件主要用于解决A题,实现了一个函数,详细见下文.
 * 
 * @author 叶陈昊
 * @date 2023/10/17 
 */

#ifndef PROBLEMA_H_
#define PROBLEMA_H_

#include<vector>

/**
 * @brief 给定函数f和插值点,求插值多项式在任意实数x处的值
 * 
 * @attention 函数`poly_at_x`在后面的题中基本没有怎么用到,首先是因为
 * 我们不知道原来的函数f的具体表达式(否则我们就不用寻找插值多项式了),
 * 其次是因为,直接将插值点这一个数组和对应f的函数值这一个数组传入
 * 是更具有普适性的.在这里,这个普适函数就是`NewtonPoly.h`中的
 * `Newton_poly_at_x`.具体的实现见`ProblemA.cpp`.
 */
double poly_at_x(double(*f)(double), 
                 const std::vector<double> &inter_pts, 
                 double x);

#endif